<?php
class proyecto
{
	protected $tpl;
	
	public function __construct($tpl)
	{
		//$tpl->set('MENU',$tpl->parse('menu_user')->render());
		//$tpl->MENU = $tpl->parse('proyecto/menu_user')->render();
		$this->tpl = & $tpl;
	}
	public function __menu()
	{
		switch(XAUTH::$user->role)
		{
			case 'user' :$this->tpl->MENU = $this->tpl->parse('proyecto/menu_user')->render();
			break ;
			case 'administrator' : $this->tpl->MENU = $this->tpl->parse('proyecto/menu_admin')->render();
			break;
		}
	//	$this->tpl->MENU = $this->tpl->parse('proyecto/menu_user')->render();
	}
	public function __menu_proyecto($id){$this->tpl->MENU = $this->tpl->parse('menu_proyecto')->assign('ID',$id)->render();}
	/*public function condition()
	{
		return array(
			'register' => !XAUTH::$user->registered(),
			'add_information' => XAUTH::$user->registered()
		);
	}/**/
	public function _condition()
	{
		return array(
			'register' => array(
							!XAUTH::$user->registered()?'register':'_default'
						),
			'lista' => array(  '__menu' ,'lista'  ),
			'crear' => array(  '__menu' ,'crear'  ),
			'_default' => explode(',','__menu,_default'),
			'id' => array( '__menu_proyecto' ,'id' ),
			//admin
			'mis_proyectos' => array(  '__menu' ,'mis_proyectos'  ),
			'pendientes' => array(  '__menu' ,'pendientes'  ),
			'relacionar' => array(  '__menu' ,'relacionar'  ),
		);
	}
	public function id($id)
	{
		//return "s";
	}
	public function crear()
	{
		if(!empty($_POST['proyecto']))
		{
			$P = & $_POST['proyecto'];
			$P['email'] = XAUTH::$user->email;
			$P['usuarios_id'] = XAUTH::$user->usuarios_id;
			$P['history'] = serialize(array());
			$cols = array('nombre', 'total_dias','email', 'usuarios_id','fecha_inicio','fecha_fin','history');
			$inserta = DB::INSERT('proyecto',$cols,null,array('fecha_inicio' => 'NOW()','fecha_fin' => 'NOW()'))->set($P);
			if($inserta->rowCount() > 0)
			{
				$ID = DB::getInstance()->lastInsertId();
				if(file_exists(BASE_PATH . DS . 'plataforma' . DS .'documentos' . DS . $_POST['documentos_tmp']))
				{
					rename( BASE_PATH . DS . 'plataforma' . DS .'documentos' . DS . $_POST['documentos_tmp'] , 
							BASE_PATH . DS . 'plataforma' . DS .'documentos' . DS . $ID
					);
				}
				if(!empty($_POST['mensajes']))
				{
					$cols = array('proyecto_id','email','asunto','mensaje','fecha');
					$mensaje = array(
						'proyecto_id' => $ID,
						'email' => XAUTH::$user->email,
						'asunto' => 'Cotizacion para proyecto ' .$P['nombre'],
						'mensaje' => $_POST['mensajes']['mensaje']
					);
					$inserta_msg = DB::INSERT('mensajes',$cols,null,array('fecha' => 'NOW()'))->set($mensaje);
				}
				if(!empty($_POST['documentos']))
				{
					$cols = array('proyecto_id','filename','url');
					$inserta_docs = DB::INSERT('documentos',$cols,null);
					foreach($_POST['documentos'] as $data)
					{
						$inserta_docs->execute(array(
							'proyecto_id' => $ID,
							'filename' => $data['filename'],
							'url' => $data['url'],
						));
					}
				}
				return $this->lista();
			}
		}
		$this->tpl->parse('proyecto/crear');
		return $this->tpl->render();
	}
	public function lista()
	{
		$this->tpl->parse('proyecto/lista');
		$this->tpl->assign('LISTA',DB::SELECT('proyecto','*','WHERE usuarios_id=? AND estado=2')->set(XAUTH::$user->usuarios_id)->fetchAll(DB::FETCH_ASSOC));
		return $this->tpl->render();
	}
	public function nombre()
	{}
	public function _default()
	{
		return $this->lista();
	}
	public function __call($name,$args)
	{
		$this->__menu();
		return $name;
		return false;
	}
	//administrator methods
	public function pendientes()
	{
		$this->tpl->parse('proyecto/pendientes');
			$this->tpl->assign('LISTA',DB::SELECT('proyecto','*','WHERE estado=0')->set(XAUTH::$user->usuarios_id)->fetchAll(DB::FETCH_ASSOC));
		return $this->tpl->render();
	}
	public function _lista_documentos($id = 0)
	{
		if($id>0)
		{
			return json_encode(DB::SELECT('documentos','*','WHERE proyecto_id=?')->set($id)->fetchAll(DB::FETCH_ASSOC));
		}
	}
	public function mis_proyectos()
	{
		$this->tpl->parse('proyecto/lista_admin');
		$this->tpl->assign('LISTA',DB::SELECT('proyecto,responsable_proyecto','proyecto.*','WHERE responsable_proyecto.usuarios_id=? AND estado=2')->set(XAUTH::$user->usuarios_id)->fetchAll(DB::FETCH_ASSOC));
		return $this->tpl->render();
	}
	public function relacionar()
	{
		$this->tpl->parse('proyecto/relacionar');
		//$LISTA = DB::SELECT('proyecto,responsable_proyecto','proyecto.*','WHERE responsable_proyecto.usuarios_id=? AND estado=0')->set(XAUTH::$user->usuarios_id)->fetchAll(DB::FETCH_ASSOC);
		$LISTA = DB::SELECT('proyecto','*','WHERE proyecto.estado<3')->set();
		$RESPONSABLES = DB::SELECT('responsable_proyecto','*')->set();
		$LISTADO = array();
		foreach($LISTA as $proyecto)
		{
			$LISTADO = 
		}
		//var_dump($LISTA->errorInfo());
		$this->tpl->assign('LISTA',$LISTA ->fetchAll(DB::FETCH_ASSOC));
		return $this->tpl->render();
	}
}